package com.xiaozou.domain;


import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

@Data
public class AnswerRsp {
    private String originQuestion;
    private String rewriteQuestion;
    @ApiModelProperty("命中问法")
    private SimpleAskMethod askMethod;
    @ApiModelProperty("命中场景")
    private SimpleScene scene;
    @ApiModelProperty("命中答案")
    private ResultAnswer answer;
    @ApiModelProperty("转人工")
    private TurnHuman turnHuman;
    @ApiModelProperty("焦点信息")
    private FocusInfo focusInfo;
    @ApiModelProperty("状态信息")
    private StateInfo stateInfo;
    @ApiModelProperty("召回问法")
    private List<String> recallAskMethodNameList;
    @ApiModelProperty("重排问法")
    private List<String> rerankAskMethodNameList;
    @ApiModelProperty("重写提示词")
    private String rewrite;
    @ApiModelProperty("审核提示词")
    private String audit;
    @ApiModelProperty("全部分类提示词")
    private String classifyAllIn;
    @ApiModelProperty("分类提示词")
    private String classify;
    private String rewriteCount;
    private String auditCount;
    private String classifyAllInCount;
    private String classifyCount;




    @Data
    public static class SimpleAskMethod {
        @ApiModelProperty("问法Id")
        private String id;
        @ApiModelProperty("问法名称")
        private String name;
        @ApiModelProperty("问法归类: 101-商品问题 102-聊天互动 103-店铺问题 104-活动优惠 105-购买操作 106-物流问题 107-售后问题 108-图片识别 -1-其它")
        private String category;
        @ApiModelProperty("场景类型：0-店铺问法 2-行业问法")
        private Integer type;
        @ApiModelProperty("命中情景类型：0-普通场景 1-商品反问 2-订单反问 3-物流反问 4-智能尺码表")
        private Integer hitSituationType;
        @ApiModelProperty("识别点: 1-店铺拓展问 2-图灵模型 3-普惠模型")
        private Integer recognizePoint;
        private String recognizePointDesc;
        @ApiModelProperty("命中分数")
        private Float score;
        @ApiModelProperty("重写问题")
        private String rewriteQuestion;
    }

    @Data
    public static class SimpleScene {
        @ApiModelProperty("场景ID")
        private String id;
        @ApiModelProperty("场景类型：0-普通场景 1-商品反问 2-订单反问 3-物流反问 4-智能尺码表 -1-其它")
        private Integer type;
        @ApiModelProperty("场景名称(当type=0时才有名称)")
        private String name;
        private Boolean lightOn;
        private Boolean dutyOpen;
    }

    @Data
    public static class TurnHuman {
        @ApiModelProperty("是否转人工")
        private Boolean required;
        @ApiModelProperty("转人工原因")
        private String reason;
    }

    @Data
    public static class ResultAnswer {
        @ApiModelProperty("答案文本")
        private String content;
        @ApiModelProperty("表情包")
        private List<String> memes;
        @ApiModelProperty("图片链接")
        private List<String> images;
        @ApiModelProperty("视频链接")
        private List<Video> videos;
        @ApiModelProperty("延迟消息")
        private List<DelayAnswer> delayAnswers;

    }

    @Data
    public static class DelayAnswer {
        @ApiModelProperty("延迟秒数：固定默认1s")
        private Integer delayInSec = 1;
        @ApiModelProperty("答案文本")
        private String content;
        @ApiModelProperty("表情包")
        private List<String> memes;
        @ApiModelProperty("图片链接")
        private List<String> images;
        @ApiModelProperty("视频链接")
        private List<Video> videos;
    }

    @Data
    public static class Video {
        @ApiModelProperty("视频URL")
        private String url;
        @ApiModelProperty("视频封面URL")
        private String coverUrl;
    }

    @Data
    public static class FocusInfo {
        private String spuId;
        private String spuDetailUrl;
        private String spuImageUrl;
        private String spuName;
        private String skuId;
        private String skuIdName;
        private String orderId;
        private String orderStatus;
    }


}
